import {createApp } from 'vue'
import App from './App.vue'

// 引用路由
import Routers from './routers/index'

// 引入Vant UI
import Vant from 'vant'
import 'vant/lib/index.css';
import store from './store'
// 引入接口
import Api from '@/api/index.js'

// 引入cookie
import VueCookies from 'vue3-cookies'
var app = createApp(App)
.use(Routers)
.use(Api)
.use(VueCookies)
.use(Vant)
.use(store)
.mount('#app')

import {showNotify} from 'vant'

Routers.beforeEach(async (to,from,next) => {

    // 获取是否组件是否登录验证的状态
    let IsLogin = to.meta.auth ? to.meta.auth : false
    
    if(IsLogin)
    {
        // 需要登录

        // 获取登录信息
        let LoginAuth = app.$cookies.get('LoginAuth') ? app.$cookies.get('LoginAuth') : {}

        // 判断cookie是否为空
        if(!LoginAuth || JSON.stringify(LoginAuth) == '{}')
        {
            showNotify({
                type:'warning',
                message:'请先登录'
            })

            // 跳转登录
            next('/user/base/login')
            return false
        }

        let busid = LoginAuth.id ? LoginAuth.id : 0

        let result = await app.$api.check({busid:busid})

        if(result.code === 0)
        {
            showNotify({
                type:'warning',
                message:result.msg
            })

            // 清除cookie
            app.$cookies.remove('LoginAuth')

            // 跳转登录
            next('/user/base/login')
            return false
        }

        // 更新用户信息
        app.$cookies.set('LoginAuth',result.data)

        // 放行
        next()

    }else{
        // 不需要登录 放行
        next()
    }
});